package org.upm;

/**
 * Clase que genera un recibo a partir de un fichero en el que se recogen todas las llamadas
 * de un usuario.
 * 
 * @author Rocío Sotomayor
 * @author Jonathan González
 * @version 24/04/2009
 */

import java.util.ArrayList;
public class GeneradorRecibo {	
	    /**
	     * Método que inserta una serie de hechos en la base de conocimiento
	     * para poder seleccionar el operador y tarifa con el que se realiza la llamada.
	     * @param llamada - Llamada para la que hay que elegir operador.
	     * @param tarifas - Tarifas entre las que se puede elegir.
	     * @throws Exception
	     */
	    //@SuppressWarnings("unchecked")
		public Factura generaRecibo(String baseConocimiento, Usuario llamante, ArrayList llamadas) throws Exception{
				llamadas.add(llamante);
	        	Object[] facts = llamadas.toArray();
	            new RuleRunner().runRules( new String[] { baseConocimiento }, facts );
	            System.out.println("El recibo de este mes asciende a " + (double)llamante.getFactura().getPrecio()/100 + " Euros.");
	            System.out.println("Llamadas a movistar " + llamante.getFactura().getLlamadasMovistar() + 
	            		" numero total de segundos " + llamante.getFactura().getSegundosMovistar());
	            System.out.println("Llamadas a Vodafone " + llamante.getFactura().getLlamadasVodafone() + 
	            		" numero total de segundos " + llamante.getFactura().getSegundosVodafone());
	            System.out.println("Llamadas a Orange " + llamante.getFactura().getLlamadasOrange() + 
	            		" numero total de segundos " + llamante.getFactura().getSegundosOrange());
	            System.out.println("Llamadas a Yoigo " + llamante.getFactura().getLlamadasYoigo() + 
	            		" numero total de segundos " + llamante.getFactura().getSegundosYoigo());
	            return llamante.getFactura();

	        }
}
